Qt for Windows:Qt 5.9.0 MinGW 静态编译版本(包含OpenSSL)

您所在的位置:网站首页 qt 静态编译 版权 Qt for Windows:Qt 5.9.0 MinGW 静态编译版本(包含OpenSSL)

Qt for Windows:Qt 5.9.0 MinGW 静态编译版本(包含OpenSSL)

2024-07-16 09:29| 来源: 网络整理| 查看: 265

概述

5月31号,Qt这一次竟然没跳票,如约发布了LTS的5.9

感觉这一次5.9用的人会很多,毕竟LTS,而且确实改进很大,所以这一次完整的写一遍静态编译的步骤

我这里只涉及MinGW版本的静态编译,包含OpenSSL,不包含MySql

我使用的是 Windows10 64bit 操作系统

我也写了一篇,将如何静态发布QML开发的程序,是基于本文的,链接:

http://blog.csdn.net/wsj18808050/article/details/72865917

直接使用我的编译成果

这个最为简单,不需要自己编译Qt,但是Qt等安装路径这些都会被定死,而且我编译时跳过或者没有启用的模块将会无法使用。

安装 Qt5.9.0 MinGW 版本

前往百度云,下载压缩包:

https://pan.baidu.com/s/1o8LmUy2

解压 openssl-1.0.1c_static_w32_mingw.zip 到 C:\Dev 目录

解压 Qt5.9.0_MinGW_static.part1.rar 到 C:\Qt 目录

转跳至本文的 套件配置 ,然后配置套件,接着直接使用就可以了

准备步骤

如果你希望自己编译Qt,可以从这里开始看

下载Qt

5.9开始,Qt在Windows上的安装包合并了,只有一个版本。就是 Qt 5.9.0 for Windows (2.3 GB),安装的时候再选择不同的套件。下载地址如下:

官网地址(需要登录Qt账号):

https://www.qt.io/download-open-source/#section-3

exe下载地址:

http://download.qt.io/official_releases/qt/5.9/5.9.0/qt-opensource-windows-x86-5.9.0.exe

安装Qt

选择路径

这里写图片描述

选择套件

这里写图片描述

我这里选择了Android,是因为我要用,不需要的同学可以不选择。

准备OpenSSL库

我配置的是1.0.1c版本的OpenSSL,关于OpenSSL的编译我不建议自己进行,比较麻烦。我是到这里直接下载OpenSSL的编译结果的:

http://www.cnblogs.com/findumars/p/6372223.html

下载后解压OpenSSL的zip压缩包(openssl-1.0.1c_static_w32_mingw.zip)到 C:\Dev 目录下

安装Perl

我选择的是:ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi

安装包: http://downloads.activestate.com/ActivePerl/releases/5.22.1.2201/ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi

这个资源貌似官网已经没了,链接直接打开后就报错,但是丢到迅雷里任然可以正常下载

官网地址:

http://www.activestate.com/activeperl/downloadsc

安装 Python

我选择的是:python-3.5.1.exe

安装包:

https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe

官网地址:

https://www.python.org/downloads/

安装好Python后,将安装目录添加到PATH环境变量中(安装的时候如果选上“Add Python 3.5 to PATH”会自动添加)

检查

运行Qt的命令行工具

输入以下命令看看 gcc 编译器是否配置正确

gcc -v

再输入以下命令看看 perl 解释器是否配置正确

perl -v

输入以下命令看看 python 是否配置正确

python

按 Ctrl + Z 回车,可以退出 python

编译Qt

打开Qt命令行工具

cd到源码目录

cd C:\Qt\Qt5.9.0_MinGW\5.9\Src

配置Qt,准备编译

我这里跳过了一些模块,如果你需要这些模块,在自己编译的时候可以去掉skip

configure.bat -static -release -platform win32-g++ -prefix "C:\Qt\Qt5.9.0_MinGW_static" -qt-sqlite -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -openssl-linked -opensource -confirm-license -make libs OPENSSL_LIBS="-llibssl -llibcrypto -lgdi32" -L C:\Dev\openssl-1.0.1c_static_w32_mingw -I C:\Dev\openssl-1.0.1c_static_w32_mingw\include -nomake tools -nomake examples -nomake tests -skip qt3d -skip qtcanvas3d -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextras

查看输出结果 根据自己需求,查看对应的模块是否正常

Desktop OpenGL ....................... yes

OpenGL正常

OpenSSL ................................ yes

OpenSSL正常

Qt Sql ................................. yes

Sql模块正常

SQLite ................................. yes

SQLite正常

MySql .................................. no

MySql不正常,因为我没有装MySql开发环境,那么编译出来的Qt是无法正常连接到MySql的

编译Qt

为了避免一些奇怪的问题,我使用单线程编译

编译非常慢,请至少准备几个小时的空余时间

如果你使用的是Win10请注意不要让Win10的更新后的自动重启打断编译,我编译了一半的时候就差点被Win10自动重启了

mingw32-make

安装Qt

mingw32-make install

修复一些小问题

修改编译配置

打开文件 C:\Qt\5.9.0_MinGW_static\mkspecs\win32-g++\qmake.conf

找到 QMAKE_LFLAGS_DLL

将后面都改成 -static

再加一行 QMAKE_LFLAGS

后面也改成 -static

这里写图片描述

拷贝qml文件

因为一些我还没了解的原因,编译出来的Qt,在qml目录是没有.qml文件,如下图,左边为静态编译版本Qt,右边为普通的版本。qml文件一个都没有。所以,这些qml文件都需要手动拷贝下。

这里写图片描述

套件配置

打开QtCreator

选择上方工具栏中的 -> 工具 -> 选项 -> 构建和运行

在上方选项卡中选择 Qt Versions,并且点击右侧的添加

打开qmake.exe,路径是:C:\Qt\Qt5.9.0_MinGW_static\bin\qmake.exe

这里写图片描述

在上方选项卡中选择 构建套件 ,然后配置一个新的套件,参数如下

这里写图片描述

使用 创建工程,使用新配置的套件

这里写图片描述

左下角,切换到release模式,直接编译

这里写图片描述

查看编译结果,运行

这里写图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3